#pragma once

#include "CmdHandler3.h"
#include "Arc3D.h"

class Scene;
class CDblPoint;
class PointHandler;

class Arc3DHandler : public CmdHandler3
{
	Q_OBJECT
public:
	Q_INVOKABLE Arc3DHandler();
	~Arc3DHandler();

	virtual void input(const QVariant& data, const QString& rawInput, CommandSource cs) override;
	void drawFinished(Scene* scene);

private:
	std::shared_ptr<Arc3D> m_arc;
	osg::Vec3d m_startPt;
	osg::Vec3d m_secondPt;
	osg::Vec3d m_endPt;
	std::shared_ptr<PointHandler> m_pointStateMachine;
};
